package com.neusoft.mapper;

import com.neusoft.entity.UmsMenu;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 后台菜单表(UmsMenu)表数据库访问层
 *
 * @author makejava
 * @since 2020-11-05 15:19:22
 */
public interface UmsMenuMapper {

    /*
        与动态SQL有关，通过Java类的方法生成需要动态SQL
        @SelectProvider
        @InsertProvider
        @UpdateProvider
        @DeleteProvider
     */

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Select("select * from mall.ums_menu where id = #{id}")
    @Results({
            @Result(
                    column = "id",
                    many = @Many(select = "com.neusoft.mapper.UmsMenuMapper.queryByParentId"),
                    property = "umsMenuList"
            )
    })
    UmsMenu queryById(Long id);


    @Select("select * from mall.ums_menu where parent_id = #{id}")
    List<UmsMenu> queryByParentId(Long id);

    /**
     * 通过实体作为筛选条件查询
     *
     * @param umsMenu 实例对象
     * @return 对象列表
     */
    List<UmsMenu> queryAll(UmsMenu umsMenu);

    /**
     * 新增数据
     *
     * @param umsMenu 实例对象
     * @return 影响行数
     */
    int insert(UmsMenu umsMenu);

    /**
     * 修改数据
     *
     * @param umsMenu 实例对象
     * @return 影响行数
     */
    int update(UmsMenu umsMenu);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Long id);

}